home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / contrib / abstyles / aunsrt.bst < prev    next >
Text File  |  1992-05-24  |  16KB  |  928 lines

  1. % BibTeX bibliography style `AUNSRT'
  2. ENTRY
  3. { address
  4. author
  5. booktitle
  6. chapter
  7. edition
  8. editor
  9. howpublished
  10. institution
  11. journal
  12. key
  13. month
  14. note
  15. number
  16. organization
  17. pages
  18. publisher
  19. school
  20. series
  21. title
  22. type
  23. volume
  24. year
  25. }
  26. {}
  27. { label }
  28. INTEGERS { output.state before.all mid.sentence after.sentence after.block 
  29. continue.sentence }
  30. FUNCTION {init.state.consts}
  31. { #0 'before.all :=
  32. #1 'mid.sentence :=
  33. #2 'after.sentence :=
  34. #3 'after.block :=
  35. #4 'continue.sentence :=
  36. }
  37. STRINGS { s t }
  38. FUNCTION {output.nonnull}
  39. { 's :=
  40. output.state continue.sentence =
  41. { " " * write$ }
  42. { output.state mid.sentence =
  43. { ", " * write$ }
  44. { output.state after.block =
  45. { add.period$ write$
  46. newline$
  47. "\newblock " write$
  48. }
  49. { output.state before.all =
  50. 'write$
  51. { add.period$ " " * write$ }
  52. if$
  53. }
  54. if$
  55. }
  56. if$
  57. continue.sentence 'output.state :=
  58. }
  59. if$
  60. s
  61. }
  62. FUNCTION {output}
  63. { duplicate$ empty$
  64. 'pop$
  65. 'output.nonnull
  66. if$
  67. }
  68. FUNCTION {output.check}
  69. { 't :=
  70. duplicate$ empty$
  71. { pop$ "empty " t * " in " * cite$ * warning$ }
  72. 'output.nonnull
  73. if$
  74. }
  75. FUNCTION {output.bibitem}
  76. { newline$
  77. "\bibitem{" write$
  78. cite$ write$
  79. "}" write$
  80. newline$
  81. ""
  82. before.all 'output.state :=
  83. }
  84. FUNCTION {fin.entry}
  85. { add.period$
  86. write$
  87. newline$
  88. }
  89. FUNCTION {new.block}
  90. { output.state before.all =
  91. 'skip$
  92. { after.block 'output.state := }
  93. if$
  94. }
  95. FUNCTION {new.sentence}
  96. { output.state after.block =
  97. 'skip$
  98. { output.state before.all =
  99. 'skip$
  100. { after.sentence 'output.state := }
  101. if$
  102. }
  103. if$
  104. }
  105. FUNCTION {new.clause}
  106. { output.state after.sentence =
  107. 'skip$
  108. { output.state after.block =
  109. 'skip$
  110. { output.state before.all =
  111. 'skip$
  112. { mid.sentence 'output.state := }
  113. if$
  114. }
  115. if$
  116. }
  117. if$
  118. }
  119. FUNCTION {not}
  120. {   { #0 }
  121. { #1 }
  122. if$
  123. }
  124. FUNCTION {and}
  125. {   'skip$
  126. { pop$ #0 }
  127. if$
  128. }
  129. FUNCTION {or}
  130. {   { pop$ #1 }
  131. 'skip$
  132. if$
  133. }
  134. FUNCTION {new.block.checka}
  135. { empty$
  136. 'skip$
  137. 'new.block
  138. if$
  139. }
  140. FUNCTION {new.block.checkb}
  141. { empty$
  142. swap$ empty$
  143. and
  144. 'skip$
  145. 'new.block
  146. if$
  147. }
  148. FUNCTION {new.sentence.checka}
  149. { empty$
  150. 'skip$
  151. 'new.sentence
  152. if$
  153. }
  154. FUNCTION {new.sentence.checkb}
  155. { empty$
  156. swap$ empty$
  157. and
  158. 'skip$
  159. 'new.sentence
  160. if$
  161. }
  162. FUNCTION {new.clause.checka}
  163. { empty$
  164. 'skip$
  165. 'new.clause
  166. if$
  167. }
  168. FUNCTION {new.clause.checkb}
  169. { empty$
  170. swap$ empty$
  171. and
  172. 'skip$
  173. 'new.clause
  174. if$
  175. }
  176. FUNCTION {field.or.null}
  177. { duplicate$ empty$
  178. { pop$ "" }
  179. 'skip$
  180. if$
  181. }
  182. FUNCTION {emphasize}
  183. { duplicate$ empty$
  184. { pop$ "" }
  185. { "\abtype{2}{" swap$ * "}" * }    
  186. if$
  187. }
  188. FUNCTION {capitalize}
  189. { duplicate$ empty$
  190. { pop$ "" }
  191. { "\abtype{0}{" swap$ * "}" * }    
  192. if$
  193. }
  194. FUNCTION {boldface}
  195. { duplicate$ empty$
  196. { pop$ "" }
  197. { "\abtype{3}{" swap$ * "}" * }    
  198. if$
  199. }
  200. FUNCTION {quote}
  201. { duplicate$ empty$
  202. { pop$ "" }
  203. { "\abtype{1}{" swap$ * "}" * }    
  204. if$
  205. }
  206. FUNCTION {parentheses}
  207. { duplicate$ empty$
  208. { pop$ "" }
  209. { "\abtype{5}{" swap$ * "}" * }    
  210. if$
  211. }
  212. INTEGERS { nameptr namesleft numnames }
  213. FUNCTION {format.names}
  214. { 's :=
  215. #1 'nameptr :=
  216. s num.names$ 'numnames :=
  217. numnames 'namesleft :=
  218. { namesleft #0 > }
  219. { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
  220. nameptr #1 >
  221. { namesleft #1 >
  222. { ", " * t * }
  223. { numnames #2 >
  224. { "\abphrase{1}" * }    
  225. 'skip$
  226. if$
  227. t "others" =
  228. { "\abphrase{2}" * }        
  229. { "\abphrase{0}" * t * }    
  230. if$
  231. }
  232. if$
  233. }
  234. 't
  235. if$
  236. nameptr #1 + 'nameptr :=
  237. namesleft #1 - 'namesleft :=
  238. }
  239. while$
  240. }
  241. FUNCTION {format.authors}
  242. { author empty$
  243. { "" }
  244. { author format.names capitalize }
  245. if$
  246. }
  247. FUNCTION {format.editors}
  248. { editor empty$
  249. { "" }
  250. { editor format.names capitalize
  251. editor num.names$ #1 >
  252. { "\abphrase{3}" * }    
  253. { "\abphrase{4}" * }    
  254. if$
  255. }
  256. if$
  257. }
  258. FUNCTION {format.title}
  259. { title empty$
  260. { "" }
  261. { title "t" change.case$ }
  262. if$
  263. }
  264. FUNCTION {n.dashify}
  265. { 't :=
  266. ""
  267. { t empty$ not }
  268. { t #1 #1 substring$ "-" =
  269. { t #1 #2 substring$ "--" = not
  270. { "--" *
  271. t #2 global.max$ substring$ 't :=
  272. }
  273. {   { t #1 #1 substring$ "-" = }
  274. { "-" *
  275. t #2 global.max$ substring$ 't :=
  276. }
  277. while$
  278. }
  279. if$
  280. }
  281. { t #1 #1 substring$ *
  282. t #2 global.max$ substring$ 't :=
  283. }
  284. if$
  285. }
  286. while$
  287. }
  288. FUNCTION {format.date}
  289. { year empty$
  290. { month empty$
  291. { "" }
  292. { "there's a month but no year in " cite$ * warning$
  293. month parentheses
  294. }
  295. if$
  296. }
  297. { month empty$
  298. { year parentheses }
  299. { month " " * year * parentheses }
  300. if$
  301. }
  302. if$
  303. }
  304. FUNCTION {format.btitle}
  305. { title quote
  306. }
  307. FUNCTION {tie.or.space.connect}
  308. { duplicate$ text.length$ #3 <
  309. { "~" }
  310. { " " }
  311. if$
  312. swap$ * *
  313. }
  314. FUNCTION {either.or.check}
  315. { empty$
  316. 'pop$
  317. { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  318. if$
  319. }
  320. FUNCTION {format.bvolume}
  321. { volume empty$
  322. { "" }
  323. { "\abphrase{8}" volume tie.or.space.connect    
  324. series empty$
  325. 'skip$
  326. { "\abphrase{5}" * series quote * }    
  327. if$
  328. "volume and number" number either.or.check
  329. }
  330. if$
  331. }
  332. FUNCTION {format.number.series}
  333. { volume empty$
  334. { number empty$
  335. { series field.or.null }
  336. { output.state mid.sentence = output.state continue.sentence = or
  337. { "\abphrase{10}" }    
  338. { "\abphrase{11}" }    
  339. if$
  340. number tie.or.space.connect
  341. series empty$
  342. { "there's a number but no series in " cite$ * warning$ }
  343. { "\abphrase{6}" * series * }    
  344. if$
  345. }
  346. if$
  347. }
  348. { "" }
  349. if$
  350. }
  351. FUNCTION {format.edition}
  352. { edition empty$
  353. { "" }
  354. { output.state mid.sentence = output.state continue.sentence = or
  355. { edition "l" change.case$ "\abphrase{12}" * }    
  356. { edition "t" change.case$ "\abphrase{12}" * }    
  357. if$
  358. }
  359. if$
  360. }
  361. INTEGERS { multiresult }
  362. FUNCTION {multi.page.check}
  363. { 't :=
  364. #0 'multiresult :=
  365. { multiresult not
  366. t empty$ not
  367. and
  368. }
  369. { t #1 #1 substring$
  370. duplicate$ "-" =
  371. swap$ duplicate$ "," =
  372. swap$ "+" =
  373. or or
  374. { #1 'multiresult := }
  375. { t #2 global.max$ substring$ 't := }
  376. if$
  377. }
  378. while$
  379. multiresult
  380. }
  381. FUNCTION {format.pages}
  382. { pages empty$
  383. { "" }
  384. { pages multi.page.check
  385. { "\abphrase{13}" pages n.dashify tie.or.space.connect }    
  386. { "\abphrase{14}" pages tie.or.space.connect }            
  387. if$
  388. }
  389. if$
  390. }
  391. FUNCTION {format.vol.num.pages}
  392. { volume field.or.null boldface
  393. number empty$
  394. 'skip$
  395. { "\abtype{4}{" number * "}" * *    
  396. volume empty$
  397. { "there's a number but no volume in " cite$ * warning$ }
  398. 'skip$
  399. if$
  400. }
  401. if$
  402. pages empty$
  403. 'skip$
  404. { duplicate$ empty$
  405. { pop$ format.pages }
  406. { ", " * pages n.dashify * }
  407. if$
  408. }
  409. if$
  410. }
  411. FUNCTION {format.chapter.pages}
  412. { chapter empty$
  413. 'format.pages
  414. { type empty$
  415. { "\abphrase{15}" }    
  416. { type "l" change.case$ }
  417. if$
  418. chapter tie.or.space.connect
  419. pages empty$
  420. 'skip$
  421. { ", " * format.pages * }
  422. if$
  423. }
  424. if$
  425. }
  426. FUNCTION {format.in.ed.booktitle}
  427. { booktitle empty$
  428. { "" }
  429. { editor empty$
  430. { "\abphrase{7}" booktitle quote * }                
  431. { "\abphrase{7}" format.editors * ", " * booktitle quote * }    
  432. if$
  433. }
  434. if$
  435. }
  436. FUNCTION {empty.misc.check}
  437. { author empty$ title empty$ howpublished empty$
  438. month empty$ year empty$ note empty$
  439. and and and and and
  440. { "all relevant fields are empty in " cite$ * warning$ }
  441. 'skip$
  442. if$
  443. }
  444. FUNCTION {format.thesis.type}
  445. { type empty$
  446. 'skip$
  447. { pop$
  448. type "t" change.case$
  449. }
  450. if$
  451. }
  452. FUNCTION {format.tr.number}
  453. { type empty$
  454. { "\abphrase{16}" }    
  455. 'type
  456. if$
  457. number empty$
  458. { "t" change.case$ }
  459. { number tie.or.space.connect }
  460. if$
  461. }
  462. FUNCTION {format.article.crossref}
  463. { key empty$
  464. { journal empty$
  465. { "need key or journal for " cite$ * " to crossref " * crossref *
  466. warning$
  467. ""
  468. }
  469. { "\abphrase{7}" journal emphasize * }    
  470. if$
  471. }
  472. { "\abphrase{7}" key * }    
  473. if$
  474. " \cite{" * crossref * "}" *
  475. }
  476. FUNCTION {format.crossref.editor}
  477. { editor #1 "{vv~}{ll}" format.name$
  478. editor num.names$ duplicate$
  479. #2 >
  480. { pop$ "\abphrase{2}" * }    
  481. { #2 <
  482. 'skip$
  483. { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  484. { "\abphrase{2}" * }                     
  485. { "\abphrase{0}" * editor #2 "{vv~}{ll}" format.name$ * } 
  486. if$
  487. }
  488. if$
  489. }
  490. if$
  491. }
  492. FUNCTION {format.book.crossref}
  493. { volume empty$
  494. { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  495. "\abphrase{7}"                
  496. }
  497. { "\abphrase{9}" volume tie.or.space.connect    
  498. "\abphrase{5}" *                
  499. }
  500. if$
  501. editor empty$
  502. editor field.or.null author field.or.null =
  503. or
  504. { key empty$
  505. { series empty$
  506. { "need editor, key, or series for " cite$ * " to crossref " *
  507. crossref * warning$
  508. "" *
  509. }
  510. { series quote * }
  511. if$
  512. }
  513. { key * }
  514. if$
  515. }
  516. { format.crossref.editor * }
  517. if$
  518. " \cite{" * crossref * "}" *
  519. }
  520. FUNCTION {format.incoll.inproc.crossref}
  521. { editor empty$
  522. editor field.or.null author field.or.null =
  523. or
  524. { key empty$
  525. { booktitle empty$
  526. { "need editor, key, or booktitle for " cite$ * " to crossref " *
  527. crossref * warning$
  528. ""
  529. }
  530. { "\abphrase{7}" booktitle quote * }    
  531. if$
  532. }
  533. { "\abphrase{7}" key * }    
  534. if$
  535. }
  536. { "\abphrase{7}" format.crossref.editor * }    
  537. if$
  538. " \cite{" * crossref * "}" *
  539. }
  540. FUNCTION {article}
  541. { output.bibitem
  542. format.authors "author" output.check
  543. new.block
  544. format.title "title" output.check
  545. new.block
  546. crossref missing$
  547. { journal emphasize "journal" output.check
  548. format.vol.num.pages output
  549. format.date "year" output.check
  550. }
  551. { format.article.crossref output.nonnull
  552. new.clause
  553. format.pages output
  554. }
  555. if$
  556. new.block
  557. note output
  558. fin.entry
  559. }
  560. FUNCTION {book}
  561. { output.bibitem
  562. author empty$
  563. { format.editors "author and editor" output.check }
  564. { format.authors output.nonnull
  565. crossref missing$
  566. { "author and editor" editor either.or.check }
  567. 'skip$
  568. if$
  569. }
  570. if$
  571. new.block
  572. format.btitle "title" output.check
  573. crossref missing$
  574. { new.clause
  575. format.bvolume output
  576. new.block
  577. format.number.series output
  578. new.sentence
  579. publisher "publisher" output.check
  580. address new.clause.checka
  581. address output
  582. }
  583. { new.block
  584. format.book.crossref output.nonnull
  585. }
  586. if$
  587. edition new.clause.checka
  588. format.edition output
  589. format.date "year" output.check
  590. new.block
  591. note output
  592. fin.entry
  593. }
  594. FUNCTION {booklet}
  595. { output.bibitem
  596. format.authors output
  597. new.block
  598. format.title "title" output.check
  599. howpublished address new.block.checkb
  600. howpublished output
  601. address new.clause.checka
  602. address output
  603. format.date output
  604. new.block
  605. note output
  606. fin.entry
  607. }
  608. FUNCTION {inbook}
  609. { output.bibitem
  610. author empty$
  611. { format.editors "author and editor" output.check }
  612. { format.authors output.nonnull
  613. crossref missing$
  614. { "author and editor" editor either.or.check }
  615. 'skip$
  616. if$
  617. }
  618. if$
  619. new.block
  620. format.btitle "title" output.check
  621. new.clause
  622. crossref missing$
  623. { format.bvolume output
  624. new.clause
  625. format.chapter.pages "chapter and pages" output.check
  626. new.block
  627. format.number.series output
  628. new.sentence
  629. publisher "publisher" output.check
  630. address new.clause.checka
  631. address output
  632. }
  633. { format.chapter.pages "chapter and pages" output.check
  634. new.block
  635. format.book.crossref output.nonnull
  636. }
  637. if$
  638. edition new.clause.checka
  639. format.edition output
  640. format.date "year" output.check
  641. new.block
  642. note output
  643. fin.entry
  644. }
  645. FUNCTION {incollection}
  646. { output.bibitem
  647. format.authors "author" output.check
  648. new.block
  649. format.title "title" output.check
  650. new.block
  651. crossref missing$
  652. { format.in.ed.booktitle "booktitle" output.check
  653. new.clause
  654. format.bvolume output
  655. new.clause
  656. format.number.series output
  657. new.clause
  658. format.chapter.pages output
  659. new.sentence
  660. publisher "publisher" output.check
  661. address new.clause.checka
  662. address output
  663. edition new.clause.checka
  664. format.edition output
  665. format.date "year" output.check
  666. }
  667. { format.incoll.inproc.crossref output.nonnull
  668. new.clause
  669. format.chapter.pages output
  670. }
  671. if$
  672. new.block
  673. note output
  674. fin.entry
  675. }
  676. FUNCTION {inproceedings}
  677. { output.bibitem
  678. format.authors "author" output.check
  679. new.block
  680. format.title "title" output.check
  681. new.block
  682. crossref missing$
  683. { format.in.ed.booktitle "booktitle" output.check
  684. volume new.clause.checka
  685. format.bvolume output
  686. number series new.clause.checkb
  687. format.number.series output
  688. pages new.clause.checka
  689. format.pages output
  690. address empty$
  691. { organization publisher new.sentence.checkb
  692. organization output
  693. publisher new.clause.checka
  694. publisher output
  695. format.date "year" output.check
  696. }
  697. { new.clause
  698. address output.nonnull
  699. format.date "year" output.check
  700. new.sentence
  701. organization output
  702. new.clause
  703. publisher output
  704. }
  705. if$
  706. }
  707. { format.incoll.inproc.crossref output.nonnull
  708. new.clause
  709. format.pages output
  710. }
  711. if$
  712. new.block
  713. note output
  714. fin.entry
  715. }
  716. FUNCTION {conference} { inproceedings }
  717. FUNCTION {manual}
  718. { output.bibitem
  719. author empty$
  720. { organization empty$
  721. 'skip$
  722. { organization output.nonnull
  723. new.clause
  724. address output
  725. }
  726. if$
  727. }
  728. { format.authors output.nonnull }
  729. if$
  730. new.block
  731. format.btitle "title" output.check
  732. author empty$
  733. { organization empty$
  734. { address new.block.checka
  735. address output
  736. }
  737. 'skip$
  738. if$
  739. }
  740. { organization address new.block.checkb
  741. organization output
  742. address new.clause.checka
  743. address output
  744. }
  745. if$
  746. edition new.clause.checka
  747. format.edition output
  748. format.date output
  749. new.block
  750. note output
  751. fin.entry
  752. }
  753. FUNCTION {mastersthesis}
  754. { output.bibitem
  755. format.authors "author" output.check
  756. new.block
  757. format.title "title" output.check
  758. new.block
  759. "\abphrase{17}" format.thesis.type output.nonnull    
  760. new.clause
  761. school "school" output.check
  762. address new.clause.checka
  763. address output
  764. format.date "year" output.check
  765. new.block
  766. note output
  767. fin.entry
  768. }
  769. FUNCTION {misc}
  770. { output.bibitem
  771. format.authors output
  772. title howpublished new.block.checkb
  773. format.title output
  774. howpublished new.block.checka
  775. howpublished output
  776. format.date output
  777. new.block
  778. note output
  779. fin.entry
  780. empty.misc.check
  781. }
  782. FUNCTION {phdthesis}
  783. { output.bibitem
  784. format.authors "author" output.check
  785. new.block
  786. format.btitle "title" output.check
  787. new.block
  788. "\abphrase{18}" format.thesis.type output.nonnull    
  789. new.clause
  790. school "school" output.check
  791. address new.clause.checka
  792. address output
  793. format.date "year" output.check
  794. new.block
  795. note output
  796. fin.entry
  797. }
  798. FUNCTION {proceedings}
  799. { output.bibitem
  800. editor empty$
  801. { organization output }
  802. { format.editors output.nonnull }
  803. if$
  804. new.block
  805. format.btitle "title" output.check
  806. volume new.clause.checka
  807. format.bvolume output
  808. number series new.clause.checkb
  809. format.number.series output
  810. address empty$
  811. { editor empty$
  812. { publisher new.sentence.checka }
  813. { organization publisher new.sentence.checkb
  814. organization output
  815. publisher new.clause.checka
  816. }
  817. if$
  818. publisher output
  819. format.date "year" output.check
  820. }
  821. { new.clause
  822. address output.nonnull
  823. format.date "year" output.check
  824. new.sentence
  825. editor empty$
  826. 'skip$
  827. { organization output
  828. new.clause
  829. }
  830. if$
  831. publisher output
  832. }
  833. if$
  834. new.block
  835. note output
  836. fin.entry
  837. }
  838. FUNCTION {techreport}
  839. { output.bibitem
  840. format.authors "author" output.check
  841. new.block
  842. format.title "title" output.check
  843. new.block
  844. format.tr.number output.nonnull
  845. new.clause
  846. institution "institution" output.check
  847. address new.clause.checka
  848. address output
  849. format.date "year" output.check
  850. new.block
  851. note output
  852. fin.entry
  853. }
  854. FUNCTION {unpublished}
  855. { output.bibitem
  856. format.authors "author" output.check
  857. new.block
  858. format.title "title" output.check
  859. new.block
  860. note "note" output.check
  861. format.date output
  862. fin.entry
  863. }
  864. FUNCTION {default.type} { misc }
  865. MACRO {jan} {"\abmonth{1}"}
  866. MACRO {feb} {"\abmonth{2}"}
  867. MACRO {mar} {"\abmonth{3}"}
  868. MACRO {apr} {"\abmonth{4}"}
  869. MACRO {may} {"\abmonth{5}"}
  870. MACRO {jun} {"\abmonth{6}"}
  871. MACRO {jul} {"\abmonth{7}"}
  872. MACRO {aug} {"\abmonth{8}"}
  873. MACRO {sep} {"\abmonth{9}"}
  874. MACRO {oct} {"\abmonth{10}"}
  875. MACRO {nov} {"\abmonth{11}"}
  876. MACRO {dec} {"\abmonth{12}"}
  877. MACRO {first}   {"\abedition{1}"}
  878. MACRO {second}  {"\abedition{2}"}
  879. MACRO {third}   {"\abedition{3}"}
  880. MACRO {fourth}  {"\abedition{4}"}
  881. MACRO {fifth}   {"\abedition{5}"}
  882. MACRO {sixth}   {"\abedition{6}"}
  883. MACRO {seventh} {"\abedition{7}"}
  884. MACRO {eighth}  {"\abedition{8}"}
  885. MACRO {ninth}   {"\abedition{9}"}
  886. MACRO {tenth}   {"\abedition{10}"}
  887. MACRO {section}   {"\abchapter{0}"}
  888. MACRO {paragraph} {"\abchapter{1}"}
  889. MACRO {appendix}  {"\abchapter{2}"}
  890. MACRO {part}      {"\abchapter{3}"}
  891. READ
  892. STRINGS { longest.label }
  893. INTEGERS { number.label longest.label.width }
  894. FUNCTION {initialize.longest.label}
  895. { "" 'longest.label :=
  896. #1 'number.label :=
  897. #0 'longest.label.width :=
  898. }
  899. FUNCTION {longest.label.pass}
  900. { number.label int.to.str$ 'label :=
  901. number.label #1 + 'number.label :=
  902. label width$ longest.label.width >
  903. { label 'longest.label :=
  904. label width$ 'longest.label.width :=
  905. }
  906. 'skip$
  907. if$
  908. }
  909. EXECUTE {initialize.longest.label}
  910. ITERATE {longest.label.pass}
  911. FUNCTION {begin.bib}
  912. {
  913. "\newif\ifabfull\abfulltrue" write$ newline$
  914. preamble$ empty$
  915. 'skip$
  916. { preamble$ write$ newline$ }
  917. if$
  918. "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  919. }
  920. EXECUTE {begin.bib}
  921. EXECUTE {init.state.consts}
  922. ITERATE {call.type$}
  923. FUNCTION {end.bib}
  924. { newline$
  925. "\end{thebibliography}" write$ newline$
  926. }
  927. EXECUTE {end.bib}
  928.